// detail小仓库
import {reqGetDetailInfo,reqAddOrupdateShopCart} from '@/api'
import {getUUID} from '@/utils/uuid_token'
const actions= {
    // 获取产品详情
    async getGoodInfo({commit},value){
        let result=await reqGetDetailInfo(value);
        if(result.code==200){
            commit('GETGOODINFO',result.data)
        }
    },
    // 将产品添加到购物车中
    async addShopCart({commit},{skuId,skuNum}){
        let result= await reqAddOrupdateShopCart(skuId,skuNum)
        // 当前的这个函数返回的是一个promise
        if(result.code==200)
            return 'ok'
        else
            return Promise.reject(new Error('faile'))
            // Promise.reject(new Error('faile'))
    }
}
const mutations= {
    GETGOODINFO(state,goodInfo){
        state.goodInfo=goodInfo
    }
}
const state= {
    goodInfo:{},//商品详情信息
    uuid_token:getUUID(),//获取用户id
}
const getters={
    categoryView(){
        // 不加 || {} 会报错，但并不影响程序，
        // 报错原因是，初始时，goodInfo为空对象，没有办法获取categoryView，
        // 待服务器回应后，数据就自动进行替换，所以程序无影响但会报错
        return state.goodInfo.categoryView || {}
    },
    skuInfo(){
        return state.goodInfo.skuInfo || {}
    },
    spuSaleAttrList(){
        return state.goodInfo.spuSaleAttrList || []
    },
}

export default{
    actions,
    mutations,
    state,
    getters
}
